#pragma once

namespace Graphics{
	class Material : public Core::MemTrack{
	public:
		Material():m_vertexShaderId(-1),m_pixelShaderId(-1),m_computeShaderId(-1){}

		int m_vertexShaderId,
			m_pixelShaderId,
			m_computeShaderId;

		Utility::Math::Vector<float,4> m_colorEmissive;
		Utility::Math::Vector<float,4> m_colorAmbient;
		Utility::Math::Vector<float,4> m_colorDiffuse;
		Utility::Math::Vector<float,4> m_colorSpecular;
		Utility::Math::Vector<float,4> m_colorTransparent;
		float m_colorTransparency;
		float m_colorShininess;

		std::vector<unsigned int> m_textureIds;

		std::string m_name;
	};

	typedef boost::shared_ptr<Material> MaterialPtr;
}